package com.vhall.component.controller.rbac.facade;

import com.vhall.component.entity.rbac.vo.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * 菜单
 *
 * @author longzhen.gong
 * @date 2021/6/10 17:27
 */
@FeignClient(name = "RbacMenuFacade", path = "/v4/rbac/menu")
public interface RbacMenuFacade {

    /**
     * 菜单-列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("菜单-列表")
    @GetMapping(value = "/list")
    List list(@Validated MenuListReqVO reqVO);

    /**
     * 菜单-添加
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("菜单-添加")
    @PostMapping(value = "/add")
    MenuesVO add(@Validated MenuAddReqVO reqVO);

    /**
     * 菜单-删除
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("菜单-删除")
    @PostMapping(value = "/delete")
    List<Integer> delete(@Validated MenuDeleteReqVO reqVO);

    /**
     * 菜单-编辑
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @ApiOperation("菜单-编辑")
    @PostMapping(value = "/edit")
    Boolean edit(@Validated MenuEditReqVO reqVO);

}
